package bishiqiangxun;
import java.util.*;
public class Text2 {
    //笔试强训day36 第二题  哈夫曼编码
    //用小根堆  每次取出堆顶的两个元素 来进行相加 构造最优二叉树
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        //输入一个n
        int n = in.nextInt();
        //创建一个优先级队列
        PriorityQueue<Long> queue = new PriorityQueue<>();
        while(n-- != 0) {
            //加入队列
            long tmp = in.nextLong();
            queue.add(tmp);
        }
        long sum = 0;
        while(queue.size() > 1) {
            //只要队列中的元素个数不为1 就合并  构最优二叉树
            //弹出两个堆顶元素
            long p1 = queue.poll();
            long p2 = queue.poll();
            queue.add(p1+p2);
            sum +=(p1 + p2);
        }

        //输出
        System.out.println(sum);
    }
}
